package com.heima.controller;

import com.heima.common.result.PageResult;
import com.heima.common.result.Result;
import com.heima.pojo.dto.TaskPageDTO;
import com.heima.pojo.entity.Task;
import com.heima.pojo.entity.TaskType;
import com.heima.pojo.vo.TaskPageVO;
import com.heima.pojo.vo.TaskStatusVO;
import com.heima.service.TaskService;
import com.heima.service.TaskTypeService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

/**
 * \* User: chy
 * \* Date: 2025/8/23  11:01
 * \* Description:工单管理模块
 * \
 */
@RestController
@RequestMapping("/api/task-service/task")
@Slf4j
public class TaskController {

    @Autowired
    private TaskService taskService;

    /**
     * 工单分页条件查询
     * @param taskPageDTO
     * @return
     */
    @GetMapping("/search")
    public PageResult<TaskPageVO> page(TaskPageDTO taskPageDTO){
        log.info("查询参数：{}", taskPageDTO);

        PageResult<TaskPageVO> taskPageVO = taskService.pageResultTask(taskPageDTO);
        return taskPageVO;
    }

    /**
     * 创建工单
     * @param task
     * @return
     */
    @PostMapping("/create")
    public Result create(@RequestBody Task task){
        log.info("创建工单：{}", task);

        //TODO :未完成
        boolean result = taskService.save(task);
        return Result.success(result);
    }

    /**
     * 获取所有工单状态列表
     * @return
     */

    @GetMapping("/allTaskStatus")
    public List<TaskStatusVO> allTaskStatus(){
        List<TaskStatusVO> taskStatusList = taskService.allTaskStatus();
        return taskStatusList;
    }

    /**
     * 获取工单详情
     * @param taskId
     * @return
     */
    @GetMapping("/taskInfo/{taskId}")
    public Task taskInfo(@PathVariable("taskId") Integer taskId){
        log.info("获取工单id为:{}", taskId);
        Task task = taskService.getById(taskId);
        return task;
    }

    /**
     * 自动补货配置
     * @param alertValue
     * @return
     */
    @PostMapping("/autoSupplyConfig")
    public Result autoSupplyConfig(@RequestBody Integer alertValue){

        return null; // TODO: 未完成
    }

    /**
     * 获取自动补货配置
     * @return
     */
    @GetMapping("/supplyAlertValue")
    public Result supplyAlertValue(){
        return null; // TODO: 未完成
    }
}
